/** 图片控件数据 */
export interface ImageData {
  /** 图片地址 */
  src: string

  /** 图片名称 */
  name: string

  /** 图片比例 */
  aspect: ImageAspect

  /** 接受上传的图片类型 */
  accept: string

  /** 是否上传中 loading */
  loading: boolean

  /** 上传进度 */
  progress: number
}

/** 图片宽高比 */
export enum ImageAspect {
  /** 不限 */
  NONE = '',

  /** 1:1 */
  RATIO_1_1 = '1:1',

  /** 3:2 */
  RATIO_3_2 = '3:2',

  /** 4:3 */
  RATIO_4_3 = '4:3',

  /** 16:9 */
  RATIO_16_9 = '16:9',

  /** 2:3 */
  RATIO_2_3 = '2:3',

  /** 3:4 */
  RATIO_3_4 = '3:4',

  /** 9:16 */
  RATIO_9_16 = '9:16'
}

/** 图片宽高比项目 */
export interface ImageAspectItem {
  /** 文本 */
  text: string | ImageAspect

  /** 比例 */
  ratio: ImageAspect

  /** 比例值 */
  value: number
}

/** 图片宽高比命名 */
export const ImageAspectMap = new Map<ImageAspect, ImageAspectItem>([
  [ImageAspect.NONE, { text: '不限', ratio: ImageAspect.NONE, value: 0 }],

  [ImageAspect.RATIO_1_1, { text: ImageAspect.RATIO_1_1, ratio: ImageAspect.RATIO_1_1, value: 1 / 1 }],

  [ImageAspect.RATIO_3_2, { text: ImageAspect.RATIO_3_2, ratio: ImageAspect.RATIO_3_2, value: 3 / 2 }],

  [ImageAspect.RATIO_4_3, { text: ImageAspect.RATIO_4_3, ratio: ImageAspect.RATIO_4_3, value: 4 / 3 }],

  [ImageAspect.RATIO_16_9, { text: ImageAspect.RATIO_16_9, ratio: ImageAspect.RATIO_16_9, value: 16 / 9 }],

  [ImageAspect.RATIO_2_3, { text: ImageAspect.RATIO_2_3, ratio: ImageAspect.RATIO_2_3, value: 2 / 3 }],

  [ImageAspect.RATIO_3_4, { text: ImageAspect.RATIO_3_4, ratio: ImageAspect.RATIO_3_4, value: 3 / 4 }],

  [ImageAspect.RATIO_9_16, { text: ImageAspect.RATIO_9_16, ratio: ImageAspect.RATIO_9_16, value: 9 / 16 }]
])

/** 图片控件数据 默认 */
export const ImageDefault: ImageData = {
  src: '',
  name: '',
  aspect: ImageAspect.NONE,
  accept: '',
  loading: false,
  progress: 0
}
